Return state_set directly if there is no parent.
authorLi Yuan <li.yuan@sun.com>
Fri, 21 Aug 2009 07:29:51 +0000 (15:29 +0800)
committerLi Yuan <li.yuan@sun.com>
Fri, 21 Aug 2009 07:29:51 +0000 (15:29 +0800)
Bug #592403. Return state_set directly if there is no parent. Fix crash.

modules/other/gail/gailmenuitem.c

index 3c238e729aa233850b6ff85f271cbc1043d5c319..24b1a853d59652fff22327321ee97184eeb51e6e 100644 (file)
@@ -251,16 +251,18 @@ gail_menu_item_ref_state_set (AtkObject *obj)
 
   menu_item = atk_object_get_parent (obj);
 
-  if (!GTK_IS_MENU_ITEM (GTK_ACCESSIBLE (menu_item)->widget))
-    return state_set;
-
-  parent_state_set = atk_object_ref_state_set (menu_item);
-  if (!atk_state_set_contains_state (parent_state_set, ATK_STATE_SELECTED))
+  if (menu_item)
     {
-      atk_state_set_remove_state (state_set, ATK_STATE_FOCUSED);
-      atk_state_set_remove_state (state_set, ATK_STATE_SHOWING);
-    }
+      if (!GTK_IS_MENU_ITEM (GTK_ACCESSIBLE (menu_item)->widget))
+        return state_set;
 
+      parent_state_set = atk_object_ref_state_set (menu_item);
+      if (!atk_state_set_contains_state (parent_state_set, ATK_STATE_SELECTED))
+        {
+          atk_state_set_remove_state (state_set, ATK_STATE_FOCUSED);
+          atk_state_set_remove_state (state_set, ATK_STATE_SHOWING);
+        }
+    }
   return state_set;
 }